package com.example.gitzuoye3;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import java.util.ArrayList;
import java.util.List;

/**
 * 电影列表Fragment，显示所有电影列表并处理点击事件
 */
public class xiangxi extends Fragment implements com.example.gitzuoye3.shipeiqi.OnDetailButtonClickListener {

    private ListView dianyingListView;  // 电影列表视图
    private com.example.gitzuoye3.shipeiqi adapter;          // 列表适配器
    private List<DianyingItem> dianyingItems = new ArrayList<>(); // 电影数据

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater,
                             @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        // 1. 加载布局文件
        View rootView = inflater.inflate(R.layout.dianyingliebiao, container, false);
        dianyingListView = rootView.findViewById(R.id.dianyingliebiao);

        // 2. 初始化数据
        initData();

        // 3. 初始化适配器
        adapter = new com.example.gitzuoye3.shipeiqi(requireActivity(), dianyingItems, this);
        dianyingListView.setAdapter(adapter);

        Log.d("xiangxi", "电影列表Fragment已创建，项目数: " + dianyingItems.size());

        return rootView;
    }

    /**
     * 初始化电影数据
     */
    private void initData() {
        dianyingItems.clear();
        dianyingItems.add(new DianyingItem(1, "大话西游", "导演：刘镇伟\n主演：周星驰、朱茵、吴孟达、蓝洁瑛、莫文蔚等。", "dhxy"));
        dianyingItems.add(new DianyingItem(2, "哈利波特与凤凰社", "导演：大卫·叶斯\n主演：丹尼尔·雷德克里夫、爱玛·沃森、鲁伯特·格林特等。 ", "fhs"));
        dianyingItems.add(new DianyingItem(3, "千与千寻", "导演：宫崎骏\n主演：柊柊瑠瑠美、入野自由、夏木麻里等。", "qyqx"));
        dianyingItems.add(new DianyingItem(4, "热烈", "导演：大鹏\n主演：黄渤、王一博、刘敏涛、岳云鹏、小沈阳等。", "rl"));
        dianyingItems.add(new DianyingItem(5, "唐人街探案3", "导演：陈思诚\n主演：王宝强、刘昊然、长泽雅美，妻夫木聪，三浦友和，肖阳，邱泽，陈哲远，张子枫，程潇，尚语贤等。\"", "tt3"));
        dianyingItems.add(new DianyingItem(6, "我爱你", "导演：韩延\n主演：倪大红、惠英红", "wan"));
        dianyingItems.add(new DianyingItem(7, "一出好戏", "导演：黄渤\n主演：黄渤、王宝强、舒淇、张艺兴、于和伟、王迅等。", "ychx"));
        dianyingItems.add(new DianyingItem(8, "哪吒之魔童闹海", "导演：饺子\n主要配音：吕艳婷、囧囧森瑟夫、瀚墨、陈浩、绿绮等。", "nz"));
    }

    /**
     * 实现OnDetailButtonClickListener接口方法
     * 处理电影详情按钮点击事件
     */
    @Override
    public void onDetailButtonClick(DianyingItem item) {
        try {
            // 打开电影详情Fragment
            FragmentManager fm = getParentFragmentManager();
            FragmentTransaction transaction = fm.beginTransaction();
            transaction.replace(R.id.dianying_list, com.example.gitzuoye3.dianyingxinxi.newInstance(item));
            transaction.addToBackStack(null);
            transaction.commit();
        } catch (Exception e) {
            Log.e("xiangxi", "打开电影详情失败", e);
        }
    }

    /**
     * 电影项数据类，实现Serializable以便传递
     */
    public static class DianyingItem implements java.io.Serializable {
        private int id;             // 电影ID
        private String name;        // 电影名称
        private String description; // 电影描述
        private String imageName;   // 电影图片资源名称
        public int clickCount;      // 点击次数(公开以便排行榜使用)

        public DianyingItem(int id, String name, String description, String imageName) {
            this.id = id;
            this.name = name;
            this.description = description;
            this.imageName = imageName;
            this.clickCount = 0;
        }

        // Getter方法
        public int getId() { return id; }
        public String getName() { return name; }
        public String getDescription() { return description; }
        public String getImageName() { return imageName; }
    }
}